package com.edu.bean;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

/*
*   自定义一个 Bean后处理器 必须实现 BeanPostProcessor
* */
public class MyBeanPostProcessor implements BeanPostProcessor {

    /*
    *   Bean后处理器 前置处理方法
    *       前置方法中的 参数 bean 代表了被强化的那个对象，
    *       beanName 代表了 被强化的对象的名字
    * */
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("5 执行了 Bean后处理器的前置处理方法");
        return BeanPostProcessor.super.postProcessBeforeInitialization(bean, beanName);
    }

    /*
    *   Bean后处理器 后置处理方法
    * */
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("8 执行了bean后处理器 后置处理方法");
//        ((User)bean).setUserId(15);
        return BeanPostProcessor.super.postProcessAfterInitialization(bean, beanName);
    }
}
